
/*
 * @Date: 2024-11-22 10:06:39
 * @Author: LiSong
 * @LastEditors: LiSong
 * @LastEditTime: 2025-02-18 09:42:32
 * @Description: 数据面板配置
 */

import { useDbSource } from '@hp/hooks/useDbSource.js'

import { defDataSource } from '@hp/panels/cfg.js'

const { loadDataCols } = useDbSource()

export default {
  // 组件
  component: () => import("./DataBoard3.vue"),
  // 类型
  type: 'databoard3',
  // 名称
  name: '数据面板3',
  // 图标或图片
  icon: 'pi/data-board3.png',
  // 初始配置
  schema: {
    // 描述
    desc: '',
    // 面板名称
    label: '',
    // 指标名称1
    label1: '',
    // 指标名称2
    label2: '',
    // 指标绑定字段
    dataKeys: {
      // 指标1
      v1: '',
      // 指标2
      v2: '',
    },
    // 默认值
    defaultValue: {},
    // 数据源配置
    ...defDataSource,
    
    // 点击事件1
    onClick1: '',
    // 点击事件1
    onClick2: ''
  },
  // 大小定位
  layout: {
    i: '',
    x: '',
    y: '',
    w: 30,
    h: 16,
    minW: 24,
    minH: 12,
    maxW: 120,
    maxH: 24,
    static: false,
  },
  // 配置
  config: [
    {
      config: {
        label: '基础配置'
      },
      children: [
        {
          type: 'input',
          field: 'desc',
          label: '描述',
          compProps: {
          }
        },
        {
          type: 'input',
          field: 'label1',
          label: '标题1',
          compProps: {
          }
        },
        {
          type: 'input',
          field: 'label2',
          label: '标题2',
          compProps: {
          }
        },
        // {
        //   type: 'input-color',
        //   field: 'numColor',
        //   label: '数字颜色',
        // },
      ]
    },
    {
      config: {
        label: '数据配置'
      },
      children: [
        {
          type: 'input-dbsource',
          field: 'dataSource',
          label: '数据源',
          noForm: false,
          compProps: {
          }
        },
        {
          type: 'select',
          field: 'dataKeys.v1',
          label: '指标1',
          compProps: {
            clearable: true,
            getUpConfig ({ schema }) {
              return { 
                options: loadDataCols(schema),
              }
            }
          }
        },
        {
          type: 'select',
          field: 'dataKeys.v2',
          label: '指标2',
          compProps: {
            clearable: true,
            getUpConfig ({ schema }) {
              return { 
                options: loadDataCols(schema),
              }
            }
          }
        },
      ]
    },
    {
      config: {
        label: '事件配置'
      },
      children: [
        {
          type: 'event-onclick',
          field: 'onClick1',
          label: 'onClick1',
          compProps: {
            labelTooltip: '对应指标1的点击事件',
          }
        },
        {
          type: 'event-onclick',
          field: 'onClick2',
          label: 'onClick2',
          compProps: {
            labelTooltip: '对应指标2的点击事件',
          }
        },
      ]
    }
  ]
}